# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -disassemble -show-encoding < %s | FileCheck %s -check-prefix=GFX10

# GFX10: tbuffer_load_format_d16_x v0, off, s[0:3], 0 format:[BUF_FMT_32_FLOAT]
0x00,0x00,0xb0,0xe8,0x00,0x00,0x20,0x80

# GFX10: tbuffer_load_format_d16_xy v0, off, s[0:3], 0 format:[BUF_FMT_32_FLOAT]
0x00,0x00,0xb1,0xe8,0x00,0x00,0x20,0x80

# GFX10: tbuffer_load_format_d16_xyzw v[0:1], off, s[0:3], 0 format:[BUF_FMT_32_FLOAT]
0x00,0x00,0xb3,0xe8,0x00,0x00,0x20,0x80

# GFX10: tbuffer_load_format_xyzw v[0:3], off, s[0:3], 0 format:78
0x00,0x00,0x73,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_load_format_xyzw v[8:11], off, s[0:3], 0 format:[BUF_FMT_32_FLOAT] slc
0x00,0x00,0xb3,0xe8,0x00,0x08,0x40,0x80

# GFX10: tbuffer_load_format_xyzw v[4:7], off, s[0:3], 0 format:[BUF_FMT_32_32_SINT] glc
0x00,0x40,0xfb,0xe9,0x00,0x04,0x00,0x80

# GFX10: tbuffer_load_format_xyzw v[12:15], off, s[0:3], 0 format:[BUF_FMT_16_16_UNORM] glc dlc
0x00,0xc0,0xbb,0xe8,0x00,0x0c,0x00,0x80

# GFX10: tbuffer_load_format_xyzw v[0:3], off, s[0:3], 0 format:78 offset:42
0x2a,0x00,0x73,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_load_format_xyzw v[4:7], off, s[0:3], s4 format:[BUF_FMT_32_32_UINT] offset:73
0x49,0x00,0xf3,0xe9,0x00,0x04,0x00,0x04

# GFX10: tbuffer_load_format_xyzw v[0:3], off, s[0:3], 61 format:[BUF_FMT_10_10_10_2_SSCALED] offset:4095
0xff,0x0f,0x7b,0xe9,0x00,0x00,0x00,0xbd

# GFX10: tbuffer_load_format_xyzw v[8:11], off, s[0:3], s4 format:[BUF_FMT_32_32_32_32_FLOAT] offset:1
0x01,0x00,0x6b,0xea,0x00,0x08,0x00,0x04

# GFX10: tbuffer_load_format_xyzw v[0:3], v0, s[0:3], 0 format:78 idxen
0x00,0x20,0x73,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_load_format_xyzw v[0:3], v0, s[0:3], 0 format:78 offen
0x00,0x10,0x73,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_load_format_xyzw v[0:3], v0, s[0:3], 0 format:78 offen offset:52
0x34,0x10,0x73,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_load_format_xyzw v[0:3], v[0:1], s[0:3], 0 format:78 idxen offen
0x00,0x30,0x73,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_load_format_xy v[0:1], off, s[0:3], 0 format:[BUF_FMT_32_32_32_32_FLOAT]
0x00,0x00,0x69,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_load_format_x v0, off, s[0:3], 0 format:[BUF_FMT_32_32_32_32_FLOAT]
0x00,0x00,0x68,0xea,0x00,0x00,0x00,0x80

# GFX10: tbuffer_store_format_d16_x v0, v1, s[4:7], 0 format:[BUF_FMT_10_11_11_SSCALED] idxen
0x00,0x20,0x0c,0xe9,0x01,0x00,0x21,0x80

# GFX10: tbuffer_store_format_d16_xy v0, v1, s[4:7], 0 format:[BUF_FMT_10_11_11_SSCALED] idxen
0x00,0x20,0x0d,0xe9,0x01,0x00,0x21,0x80

# GFX10: tbuffer_store_format_d16_xyzw v[0:1], v2, s[4:7], 0 format:[BUF_FMT_10_11_11_SSCALED] idxen
0x00,0x20,0x0f,0xe9,0x02,0x00,0x21,0x80

# GFX10: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:[BUF_FMT_10_10_10_2_UNORM]
0x00,0x00,0x67,0xe9,0x00,0x00,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[4:7], off, s[0:3], 0 format:[BUF_FMT_8_8_8_8_SINT] glc
0x00,0x40,0xef,0xe9,0x00,0x04,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:78 slc
0x00,0x00,0x77,0xea,0x00,0x08,0x40,0x80

# GFX10: tbuffer_store_format_xyzw v[8:11], off, s[0:3], 0 format:78
0x00,0x00,0x77,0xea,0x00,0x08,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[0:3], off, s[0:3], 0 format:117 offset:42
0x2a,0x00,0xaf,0xeb,0x00,0x00,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[0:3], off, s[0:3], s4 format:117 offset:42
0x2a,0x00,0xaf,0xeb,0x00,0x00,0x00,0x04

# GFX10: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_10_10_10_2_SSCALED] idxen
0x00,0x20,0x7f,0xe9,0x04,0x00,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:115 offen
0x00,0x10,0x9f,0xeb,0x04,0x00,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[0:3], v[4:5], s[0:3], 0 format:[BUF_FMT_16_16_16_16_SINT] idxen offen
0x00,0x30,0x37,0xea,0x04,0x00,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[0:3], v4, s[0:3], 0 format:[BUF_FMT_32_32_SINT] idxen
0x00,0x20,0xff,0xe9,0x04,0x00,0x00,0x80

# GFX10: tbuffer_store_format_xyzw v[0:3], v6, s[0:3], 0 format:[BUF_FMT_10_10_10_2_USCALED] idxen
0x00,0x20,0x77,0xe9,0x06,0x00,0x00,0x80

# GFX10: tbuffer_store_format_x v0, v1, s[0:3], 0 format:125 idxen
0x00,0x20,0xec,0xeb,0x01,0x00,0x00,0x80

# GFX10: tbuffer_store_format_xy v[0:1], v2, s[0:3], 0 format:[BUF_FMT_10_11_11_SSCALED] idxen
0x00,0x20,0x0d,0xe9,0x02,0x00,0x00,0x80

# GFX10: tbuffer_store_format_x v0, v1, s[0:3], 0 format:127 idxen ; encoding: [0x00,0x20,0xfc,0xeb,0x01,0x00,0x00,0x80]
0x00,0x20,0xfc,0xeb,0x01,0x00,0x00,0x80

# GFX10: tbuffer_store_format_x v0, v1, s[0:3], 0 format:[BUF_FMT_INVALID] idxen ; encoding: [0x00,0x20,0x04,0xe8,0x01,0x00,0x00,0x80]
0x00,0x20,0x04,0xe8,0x01,0x00,0x00,0x80

# GFX10: tbuffer_load_format_d16_x v0, off, s[0:3], s0 format:[BUF_FMT_INVALID] ; encoding: [0x00,0x00,0x00,0xe8,0x00,0x00,0x20,0x00]
0x00,0x00,0x00,0xe8,0x00,0x00,0x20,0x00

# GFX10: tbuffer_store_format_x v0, v1, s[0:3], 0 idxen ; encoding: [0x00,0x20,0x0c,0xe8,0x01,0x00,0x00,0x80]
0x00,0x20,0x0c,0xe8,0x01,0x00,0x00,0x80

# GFX10: tbuffer_load_format_d16_x v0, off, s[0:3], s0 ; encoding: [0x00,0x00,0x08,0xe8,0x00,0x00,0x20,0x00]
0x00,0x00,0x08,0xe8,0x00,0x00,0x20,0x00

# GFX10: tbuffer_store_format_x v0, v1, s[0:3], s0 format:[BUF_FMT_8_SNORM] idxen ; encoding: [0x00,0x20,0x14,0xe8,0x01,0x00,0x00,0x00]
0x00,0x20,0x14,0xe8,0x01,0x00,0x00,0x00
